package com.cqjtu.eecs.controller;


import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.cqjtu.eecs.entity.CourseType;
import com.cqjtu.eecs.entity.params.courseType.CourseTypeAddParams;
import com.cqjtu.eecs.entity.params.courseType.CourseTypeUpdateParams;
import com.cqjtu.eecs.service.ICourseTypeService;
import com.cqjtu.eecs.utils.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.validation.Valid;
import java.util.List;

/**
 * <p>
 * 课程类别 前端控制器
 * </p>
 *
 * @author   
 * @since 2022-02-28
 */
@RestController
@RequestMapping("/course-type")
@Api(tags = "课程类别接口")
public class CourseTypeController {

    @Autowired
    private ICourseTypeService courseTypeService;

    @PostMapping()
    @ApiOperation(value = "新增课程类别")
    public Result addCourseType(@RequestBody @Valid CourseTypeAddParams courseTypeAddParams) {
        CourseType courseType = new CourseType();
        BeanUtils.copyProperties(courseTypeAddParams, courseType);

        //新增课程类别
        boolean save = false;
        try {
            save = courseTypeService.save(courseType);
        } catch (Exception e) {
            e.printStackTrace();
        }
        if (save)
            return Result.success();
        return Result.error();
    }

    @GetMapping("/all")
    @ApiOperation(value = "获取所有课程类别")
    public List<CourseType> getAllCourseType() {
        return courseTypeService.list();
    }

    @PutMapping()
    @ApiOperation(value = "修改课程类别")
    public Result updateCourseType(@RequestBody @Valid CourseTypeUpdateParams courseTypeUpdateParams) {

        CourseType courseType = new CourseType();
        BeanUtils.copyProperties(courseTypeUpdateParams, courseType);

        //修改课程类别
        boolean update = false;
        try {
            update = courseTypeService.update(courseType, new UpdateWrapper<CourseType>().eq("course_type_id", courseType.getCourseTypeId()));
        } catch (Exception e) {
            e.printStackTrace();
        }
        if (update)
            return Result.success();
        return Result.error();
    }
}
